Document databases are scalable, high-performance, schema-free databases used for the storage of data. Data is stored in a document database as a series of documents, each of which having one or more key/value pairs, which may be referred to as fields. Each field may have a name and a value representing the content stored in the field. Unlike relational databases where each record has the same set of fields and unused field might be kept empty, each document in a document database may have different fields and will not have any empty fields (although some fields may contain a null value indicator). Thus, applications making use of the document database can model data in a more natural way, without the restrictions of a relational database.
Certain applications, such as a software repository management application, may use a document database to store certain data. However, these applications may use a highly structured, code-defined data model for storing data (such as metadata pertaining to the software repositories). This data model may be embodied in a template used to format the data. In addition, the data model (and templates) may change over time, such as in new releases of the application. Since the document database is freely structured and schema-free, the database may contain documents having fields that do not match the data model currently used by the management application. Current systems do not include the ability to verify that that version of the data model used by the application matches the data model used in the document database. If the application attempts to read a document in the document database having a different data model than is expected, it may result in the incorrect data being read or other errors.